package cn.fintecher.pangolin.entity.elastic;

import cn.fintecher.pangolin.common.annotation.ExcelAnno;
import cn.fintecher.pangolin.common.utils.Constants;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;
import java.util.List;

/**
 * @Auther: xiaqun
 * @Description: 客户信息导入模型
 * @Date: 16:52 2019/8/24
 */

@Data
@Document(indexName = Constants.PERSONAL_IMPORT_MODEL, type = Constants.PERSONAL_IMPORT_MODEL, shards = 1, replicas = 0)
@ApiModel(value = "客户信息导入模型", description = "客户信息导入模型")
public class PersonalImportModel {
    @Id
    @ApiModelProperty(value = "主键ID")
    private String id;

    @ApiModelProperty(value = "委托方ID")
    private String principalId;

    @ApiModelProperty(value = "委托方名称")
    private String principalName;

    @ApiModelProperty(value = "批次号")
    private String batchNumber;

    @ApiModelProperty(value = "合同信息模型")
    private CaseImportModel model;

    @ApiModelProperty(value = "姓名")
    @ExcelAnno(cellName = "姓名", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String name;

    @ApiModelProperty(value = "证件号")
    @ExcelAnno(cellName = "证件号", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateNo;

    @ApiModelProperty(value = "证件类型")
    @ExcelAnno(cellName = "证件类型", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateType;

    @ApiModelProperty(value = "性别")
    private String sex;

    @ApiModelProperty(value = "生日")
    private Date birthday;

    @ApiModelProperty(value = "移动电话")
    @ExcelAnno(cellName = "移动电话", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String selfPhoneNo;

    @ApiModelProperty(value = "住宅电话")
    @ExcelAnno(cellName = "住宅电话", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String homePhoneNo;

    @ApiModelProperty(value = "单位电话")
    @ExcelAnno(cellName = "单位电话", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String employerPhoneNo;

    @ApiModelProperty(value = "住宅地址")
    @ExcelAnno(cellName = "住宅地址", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String homeAddr;

    @ApiModelProperty(value = "户籍地址")
    @ExcelAnno(cellName = "户籍地址", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String residenceAddr;

    @ApiModelProperty(value = "单位地址")
    @ExcelAnno(cellName = "单位地址", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String employerAddr;

    @ApiModelProperty(value = "单位名称")
    @ExcelAnno(cellName = "单位名称", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String employerName;

    @ApiModelProperty(value = "邮箱地址")
    @ExcelAnno(cellName = "邮箱地址", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String emailAddr;

    @ApiModelProperty(value = "邮寄地址")
    @ExcelAnno(cellName = "邮寄地址", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String billAddr;

    @ApiModelProperty(value = "联系人证件号1")
    @ExcelAnno(cellName = "联系人证件号1", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateNo1;

    @ApiModelProperty(value = "联系人姓名1")
    @ExcelAnno(cellName = "联系人姓名1", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String name1;

    @ApiModelProperty(value = "联系人关系1")
    @ExcelAnno(cellName = "联系人关系1", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String relation1;

    @ApiModelProperty(value = "联系人地址类型1")
    @ExcelAnno(cellName = "联系人地址类型1", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressType1;

    @ApiModelProperty(value = "联系人详细地址1")
    @ExcelAnno(cellName = "联系人详细地址1", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressDetail1;

    @ApiModelProperty(value = "联系人备注1")
    @ExcelAnno(cellName = "联系人备注1", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String remark1;

    @ApiModelProperty(value = "联系人电话号码1")
    @ExcelAnno(cellName = "联系人电话号码1", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String phoneNo1;

    @ApiModelProperty(value = "联系人证件号2")
    @ExcelAnno(cellName = "联系人证件号2", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateNo2;

    @ApiModelProperty(value = "联系人姓名2")
    @ExcelAnno(cellName = "联系人姓名2", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String name2;

    @ApiModelProperty(value = "联系人关系2")
    @ExcelAnno(cellName = "联系人关系2", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String relation2;

    @ApiModelProperty(value = "联系人电话号码2")
    @ExcelAnno(cellName = "联系人电话号码2", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String phoneNo2;

    @ApiModelProperty(value = "联系人地址类型2")
    @ExcelAnno(cellName = "联系人地址类型2", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressType2;

    @ApiModelProperty(value = "联系人详细地址2")
    @ExcelAnno(cellName = "联系人详细地址2", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressDetail2;

    @ApiModelProperty(value = "联系人备注2")
    @ExcelAnno(cellName = "联系人备注2", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String remark2;

    @ApiModelProperty(value = "联系人证件号3")
    @ExcelAnno(cellName = "联系人证件号3", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateNo3;

    @ApiModelProperty(value = "联系人姓名3")
    @ExcelAnno(cellName = "联系人姓名3", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String name3;

    @ApiModelProperty(value = "联系人关系3")
    @ExcelAnno(cellName = "联系人关系3", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String relation3;

    @ApiModelProperty(value = "联系人电话号码3")
    @ExcelAnno(cellName = "联系人电话号码3", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String phoneNo3;

    @ApiModelProperty(value = "联系人地址类型3")
    @ExcelAnno(cellName = "联系人地址类型3", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressType3;

    @ApiModelProperty(value = "联系人详细地址3")
    @ExcelAnno(cellName = "联系人详细地址3", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressDetail3;

    @ApiModelProperty(value = "联系人备注3")
    @ExcelAnno(cellName = "联系人备注3", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String remark3;

    @ApiModelProperty(value = "联系人证件号4")
    @ExcelAnno(cellName = "联系人证件号4", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateNo4;

    @ApiModelProperty(value = "联系人姓名4")
    @ExcelAnno(cellName = "联系人姓名4", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String name4;

    @ApiModelProperty(value = "联系人关系4")
    @ExcelAnno(cellName = "联系人关系4", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String relation4;

    @ApiModelProperty(value = "联系人电话号码4")
    @ExcelAnno(cellName = "联系人电话号码4", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String phoneNo4;

    @ApiModelProperty(value = "联系人地址类型4")
    @ExcelAnno(cellName = "联系人地址类型4", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressType4;

    @ApiModelProperty(value = "联系人详细地址4")
    @ExcelAnno(cellName = "联系人详细地址4", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressDetail4;

    @ApiModelProperty(value = "联系人备注4")
    @ExcelAnno(cellName = "联系人备注4", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String remark4;

    @ApiModelProperty(value = "联系人证件号5")
    @ExcelAnno(cellName = "联系人证件号5", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateNo5;

    @ApiModelProperty(value = "联系人姓名5")
    @ExcelAnno(cellName = "联系人姓名5", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String name5;

    @ApiModelProperty(value = "联系人关系5")
    @ExcelAnno(cellName = "联系人关系5", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String relation5;

    @ApiModelProperty(value = "联系人电话号码5")
    @ExcelAnno(cellName = "联系人电话号码5", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String phoneNo5;

    @ApiModelProperty(value = "联系人地址类型5")
    @ExcelAnno(cellName = "联系人地址类型5", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressType5;

    @ApiModelProperty(value = "联系人详细地址5")
    @ExcelAnno(cellName = "联系人详细地址5", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressDetail5;

    @ApiModelProperty(value = "联系人备注5")
    @ExcelAnno(cellName = "联系人备注5", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String remark5;

    @ApiModelProperty(value = "联系人证件号6")
    @ExcelAnno(cellName = "联系人证件号6", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String certificateNo6;

    @ApiModelProperty(value = "联系人姓名6")
    @ExcelAnno(cellName = "联系人姓名6", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String name6;

    @ApiModelProperty(value = "联系人关系6")
    @ExcelAnno(cellName = "联系人关系6", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String relation6;

    @ApiModelProperty(value = "联系人电话号码6")
    @ExcelAnno(cellName = "联系人电话号码6", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String phoneNo6;

    @ApiModelProperty(value = "联系人地址类型6")
    @ExcelAnno(cellName = "联系人地址类型6", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressType6;

    @ApiModelProperty(value = "联系人详细地址6")
    @ExcelAnno(cellName = "联系人详细地址6", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String addressDetail6;

    @ApiModelProperty(value = "联系人备注6")
    @ExcelAnno(cellName = "联系人备注6", fieldDataType = ExcelAnno.FieldDataType.STRING, fieldType = ExcelAnno.FieldType.PERSONAL)
    private String remark6;

    @ApiModelProperty(value = "未匹配字段")
     private  List<UnMappedValue> unMapped;

    @ApiModelProperty(value = "确认标记 0-未确认 1-已确认")
    private Integer flag = 0;
}
